package com.bmob.lover.ui.fragment.base

import android.view.View
import androidx.databinding.ViewDataBinding
import androidx.fragment.app.viewModels
import com.theone.common.ext.logI
import com.bmob.lover.viewmodel.AppViewModel
import com.bmob.lover.viewmodel.EventViewModel
import com.bmob.lover.viewmodel.request.LogActionViewModel
import com.theone.mvvm.base.BaseApplication
import com.theone.mvvm.base.viewmodel.BaseViewModel
import com.theone.mvvm.core.base.fragment.BaseCoreFragment
import com.theone.mvvm.ext.getAppViewModel

//  ┏┓　　　┏┓
//┏┛┻━━━┛┻┓
//┃　　　　　　　┃
//┃　　　━　　　┃
//┃　┳┛　┗┳　┃
//┃　　　　　　　┃
//┃　　　┻　　　┃
//┃　　　　　　　┃
//┗━┓　　　┏━┛
//    ┃　　　┃                  神兽保佑
//    ┃　　　┃                  永无BUG！
//    ┃　　　┗━━━┓
//    ┃　　　　　　　┣┓
//    ┃　　　　　　　┏┛
//    ┗┓┓┏━┳┓┏┛
//      ┃┫┫　┃┫┫
//      ┗┻┛　┗┻┛
/**
 * @author The one
 * @date 2021-04-22 13:53
 * @describe TODO
 * @email 625805189@qq.com
 * @remark
 */
abstract class BaseFragment<VM : BaseViewModel, DB : ViewDataBinding> : BaseCoreFragment<VM, DB>() {

    protected val mAppVm: AppViewModel by lazy { getAppViewModel<AppViewModel>() }
    protected val mEventVm: EventViewModel by lazy { getAppViewModel<EventViewModel>() }
    private val mLogRequest: LogActionViewModel by viewModels()

    override fun loaderRegisterView(): View? = null

    fun addLog(action: String) {
        mLogRequest.save(action)
    }

}